Capacity of storage drives in computer systems, such as servers is often underutilized. Drive manufacturers tend to maintain the average selling price of a drive while increasing capacity through the use of technological advances. Therefore, it is often not practical to reduce the system cost, even if storage demands do not increase as offered capacity increases. In some applications, it is beneficial to share a drive across multiple hosts or servers. In conventional systems, a storage controller is used to implement volume management and carve out volumes from shared drives.
By way of example, the storage controller is positioned between the host servers and the storage drives, using a one of multiple storage networking standards such as Serial attached SCSI (SAS), Internet Small Computer System Interface (iSCSI) or fiber channel (FC). This storage controller is used to logically partition the drives and then to assign a logical unit number (LUN), e.g., LUN 0, LUN 1, and so on, to each partition. A host can then access a given volume for data storage and retrieval by addressing it using the LUN number in the storage network protocol, as defined by standards. In these storage environments the physical partitioning of drives by administrators, as well as LUN management, becomes expensive to scale as the number of hosts and LUNs increases.